#ifndef DATABASE_UTIL_H
#define DATABASE_UTIL_H

#include "exceptions.h"

#include <algorithm>
#include <functional>
#include <cctype>
#include <locale>
#include <string>

namespace Database
{

namespace Util
{

using std::string;


static inline string& ltrim(string &s)
{
    s.erase(s.begin(), std::find_if(s.begin(), s.end(),
                                    std::not1(std::ptr_fun<int, int>(std::isspace))));
    return s;
}


static inline string& rtrim(string &s)
{
    s.erase(std::find_if(s.rbegin(), s.rend(), std::not1(std::ptr_fun<int, int>(std::isspace))).base(), s.end());
    return s;
}


static inline string& trim(string &s)
{
    return ltrim(rtrim(s));
}


string unquote(const string& s);


}   // namespace Util

}   // namespace Database

#endif // UTIL_H
